/*
 * GenericMI.h
 *
 *  Created on: Oct 19, 2012
 *      Author: johnny
 */

#ifndef GENERICMI_H_
#define GENERICMI_H_

#include <list>
#include <boost/smart_ptr/shared_ptr.hpp>
#include "ConnectionObject.h"

namespace core {

enum InputConnection {
    USB, Bluetooth
};

class GenericMI {
	GenericMI();
    GenericMI(GenericMI const &) {}
    void operator=(GenericMI const &) {}

	std::list<boost::shared_ptr<ConnectionObject> >connectionObjects;
public:
	static GenericMI& getInstance();

	virtual ~GenericMI();
    void run();
    void receiveData();
};

inline void genericMIThread() {
    GenericMI::getInstance().run();
}

} /* namespace core */
#endif /* GENERICMI_H_ */
